<?php
Class Applicationbase{
	
	private $localhost;
	private $usuario_BD;
	private $clave_BD;
	private $basedatos;
	
	private $ashost;
	private $sysnr;
	private $usuario_sap;
	private $clave_sap;
	private $client;
	
	private function conectar(){
		$var_config=parse_ini_file("config.ini",true);
		$modo=$var_config['Globals']['Modo'];
		$this->localhost=$var_config[$modo]['Servidor'];
		$this->usuario_BD=$var_config[$modo]['Usuario'];
		$this->clave_BD=$var_config[$modo]['Clave'];
		$this->basedatos=$var_config[$modo]['NombreBBDD'];

		$link=mysql_connect($this->localhost,$this->usuario_BD,$this->clave_BD) or die("Error al conectar :".mysql_error());
		mysql_select_db($this->basedatos,$link) or die("Error al elegir la BBDD :".mysql_error());
	}
	
	protected  function conectarSAP(){
		$var_config=parse_ini_file("sap.ini",true);
		$modo=$var_config['SAP']['Modo'];
		$this->ashost=$var_config[$modo]['ASHOST'];
		$this->usuario_sap=$var_config[$modo]['USUARIO'];
		$this->clave_sap=$var_config[$modo]['CLAVE'];
		$this->client=$var_config[$modo]['CLIENT'];
				
		$sap = new saprfc(array("logindata"=>array("ASHOST"=>$this->ashost,"SYSNR"=>$this->sysnr,"CLIENT"=>$this->client,
    	"USER"=>$this->usuario_sap,"PASSWD"=>$this->clave_sap),"show_errors"=>false,"debug"=>false));
		return $sap;		
	}
	protected function desconectarSAP($sap){
		$sap->logoff;
	}
	
	private function desconectar(){
		mysql_close() or die("Error al intentar desconectar del servidor de BBDD : ".mysql_error());	
	}
	
	protected function leeRegistro($tabla,$columnas,$filtro,$orden,$opciones=""){
		$tabla=strtolower($tabla);
		if(empty($columnas)){$columnas="*";}
		$sql="Select ".$columnas." from ".$tabla;
		if(!empty($filtro)){ $sql.=" where ".$filtro; }
		if(!empty($orden)){ $sql.=" order by ".$orden; }
		if(!empty($opciones)){ $sql.=" ".$opciones; }
		$sql=strtolower($sql);			
		$this->conectar();
		
		//echo "<br><br>";
		//echo $sql;
		
		$resultado=mysql_query($sql) or die(mysql_error());
		if($resultado){
			$num_resultado=mysql_num_rows($resultado);
			for($i=0;$i<$num_resultado;$i++){
				$fila=mysql_fetch_array($resultado);
				$data[]=$fila;
			}
			$this->desconectar();
			return $data;
		}
		else{
			return mysql_error();
		}
	}

	protected function leeConsulta($sql){
			
		$this->conectar();	
		$resultado=mysql_query($sql) or die(mysql_error());
		if($resultado){
			$num_resultado=mysql_num_rows($resultado);
			for($i=0;$i<$num_resultado;$i++){
				$fila=mysql_fetch_array($resultado);
				$data[]=$fila;
			}
			$this->desconectar();
			return $data;
		}
		else{
			return mysql_error();
		}
	}	
	
	protected function grabaRegistro($tabla,$data){
		$tabla=strtolower($tabla);
		$columnas=array_keys($data);
		$sql="Insert Into ".$tabla."(";
		for($i=0;$i<count($columnas);$i++){
			$sql.=$columnas[$i].",";
		}
		$sql.="FechaCreacion,UsuarioCreacion) ";
		$sql.="values(";
		for($i=0;$i<count($data);$i++){
			$sql.="'".$data[$columnas[$i]]."',";
		}
		$sql.="Now(),1)";
		$sql=strtolower($sql);			
		$this->conectar();
		//echo $sql;
		$resultado=mysql_query($sql) or die(mysql_error());
		$id=mysql_insert_id();		
		$this->desconectar();
		if($resultado){
			return $id;
		}
		else {
			return false;
		}
	}
	
	protected function actualizaRegistro($tabla,$data,$filtro){
		$tabla=strtolower($tabla);
		$columnas=array_keys($data);
		$sql="Update ".$tabla." set ";
		for($i=0;$i<count($columnas);$i++){
			$sql.=$columnas[$i]."='".$data[$columnas[$i]]."',";
		}
		$sql.="FechaModificacion=Now() , UsuarioModificacion='1'";
		$sql.=" Where ".$filtro;
		$sql=strtolower($sql);			
		
		$this->conectar();
		$resultado=mysql_query($sql) or die(mysql_error());
		$this->desconectar();
		//exit();
		if($resultado){
			return True;
		}
		else {
			return false;
		}
		
}
	
	protected function inactivaRegistro($tabla,$filtro){
		$tabla=strtolower($tabla);
		$sql="Update ".$tabla." set Estado=0 ";
		if(!empty($filtro)){	
			$sql.=" Where ".$filtro;
		}
		$sql=strtolower($sql);			
		$this->conectar();
		$resultado=mysql_query($sql) or die(mysql_error());	
		$this->desconectar();
		if($resultado){
			return true;
		}
		else {
			return false;
		}
	}

	protected function eliminaRegistro($tabla,$filtro){
		$tabla=strtolower($tabla);
		$sql="Delete from ".$tabla." ";
		if(!empty($filtro)){	
			$sql.=" Where ".$filtro;
		}
		$sql=strtolower($sql);			
		$this->conectar();
		$resultado=mysql_query($sql);	
		if($resultado){
			session_start();
			$_SESSION['mensaje']="<table><tr><td>Acción exitosa: registro borrado</td></tr></table>";
		}
		else {
			session_start();
			$_SESSION['mensaje']="<table><tr><td>Acción fallida: ".ErrorMysql(mysql_errno())."</td></tr></table>";
		}
		$this->desconectar();	
	}
	
	protected function cambiaEstado($tabla,$filtro){
		$tabla=strtolower($tabla);
		$sql="Update ".$tabla." set 
			Estado=ABS((Estado-1)*(-1)) ";
		if(!empty($filtro)){	
			$sql.=" Where ".$filtro;
		}
		$sql=strtolower($sql);			
		$this->conectar();
		$resultado=mysql_query($sql) or die(mysql_error());	
		$this->desconectar();
		if($resultado){
			return true;
		}
		else {
			return false;
		}
	}
} 
?>
